name: CI - Node.js - i18n
env:
  NODE_OPTIONS: '--max_old_space_size=6144'

on:
  # Run on push events, but only for the below branches
  push:
    branches:
      - 'i18n-sync-curriculum'
  workflow_dispatch:

permissions:
  contents: read

jobs:
  test-curriculum:
    name: Test Curriculum
    runs-on: ubuntu-22.04
    strategy:
      fail-fast: false
      matrix:
        node-version: [20.x]
        # Exclude the languages that we currently run in the full CI suite.
        locale:
          - 'chinese'
          - 'espanol'
          - 'ukrainian'
          - 'japanese'
          - 'german'
          - 'arabic'
          - 'swahili'

    steps:
      - name: Checkout Source Files
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

      - name: Setup pnpm
        uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d #v3.0.0
        with:
          version: 8

      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
        with:
          node-version: ${{ matrix.node-version }}
          cache: pnpm

      - name: Set Environment variables
        run: |
          cp sample.env .env
          cat .env

      - name: Install node_modules
        run: pnpm install

      # DONT REMOVE THIS STEP.
      # TODO: Refactor and use re-usable workflow and shared artifacts
      - name: Build Client in ${{ matrix.locale }}
        env:
          CURRICULUM_LOCALE: ${{ matrix.locale }}
          CLIENT_LOCALE: ${{ matrix.locale }}
        run: |
          pnpm run build

      - name: Run Tests
        env:
          CURRICULUM_LOCALE: ${{ matrix.locale }}
          CLIENT_LOCALE: ${{ matrix.locale }}
        run: pnpm test:curriculum
